package com.stella.ieproductivitybackend.service;

import com.stella.ieproductivitybackend.entity.*;
import com.stella.ieproductivitybackend.entity.Progress;

import java.util.List;
import java.util.Map;

/**
 * 工厂页服务层接口
 */
public interface FactoryService {
    /**
     * 工厂列表
     */
    List<Factory> getFactoryList();

    /**
     * 品牌列表
     */
    List<Brand> getBrandList(String factory);

    /**
     * 型体数量
     */
    Integer getModelCount(String factory);

    /**
     * 型体列表
     */
    List<Model> getModelList(String factory);

    /**
     * 搜索型体
     */
    List<Model> searchModel(String factory, String model);

    /**
     * 员工总数
     */
    Integer getEmployeeCount(String factory);

    /**
     * 直间人工力其他数据
     */
    Map<String, Object> getEmployeeOther();

    /**
     * 直间人工力详情
     */
    List<Employee> getEmployeeDetail(String factory, String year);

    /**
     * 纯粹达成率图表
     */
    Map<String, Object> getPureChart(String factory);

    /**
     * 纯粹达成率详情
     */
    Map<String, List<Pure>> getPureDetail(String factory);

    /**
     * 直间达成率图表
     */
    Map<String, Object> getDirectChart(String factory);

    /**
     * 直间达成率详情
     */
    Map<String, List<Direct>> getDirectDetail(String factory);

    /**
     * 入库标准秒值图表
     */
    Map<String, Object> getWarehousingChart(String factory);

    /**
     * 入库标准秒值其他数据
     */
    Map<String, Object> getWarehousingOther(String factory);

    /**
     * 入库标准秒值详情
     */
    List<Warehousing> getWarehousingDetail(String factory, String year);

    /**
     * 入库标准秒值对比
     */
    List<Warehousing> getWarehousingCompare(String factory, String year1, String month1, String year2, String month2);

    /**
     * 当月成型完工数量图表
     */
    CompletedChart getCompletedChart(String factory);

    /**
     * 成型完工数量其它
     */
    Map<String, Object> getCompletedOther(String factory);

    /**
     * 成型完工数量详情
     */
    List<Completed> getCompletedDetail(String factory, String year);

    /**
     * 当月新旧型体占比图表
     */
    ProportionChart getProportionChart(String factory);

    /**
     * 新旧型体占比其它
     */
    Map<String, Object> getProportionOther(String factory);

    /**
     * 新旧型体占比详情
     */
    List<Proportion> getProportionDetail(String factory, String year);

    /**
     * PPH（含外包）图表
     */
    Map<String, Object> getPPHChart(String factory);

    /**
     * PPH 详情
     */
    Map<String, List<PPH>> getPPHDetail(String factory);

    /**
     * 与核算进度达成图表
     */
    Map<String, Object> getProgressChart(String factory);

    /**
     * 与核算进度达成其它
     */
    Map<String, Object> getProgressOther(String factory);

    /**
     * 与核算进度达成详情
     */
    List<Progress> getProgressDetail(String factory, String year, String month);

    /**
     * 型体工时效率
     */
    List<Efficiency> getEfficiency(String factory, String startTime, String endTime, List<String> brand, String model);

    /**
     * 制程组别纯粹达成率及排名
     */
    List<Ranking> getRanking(String factory, String thisTime, String lastTime, String operation);
}
